import java.util.ArrayList;

public class 两个数组的交集 {
    // 两个数组的交集
    public ArrayList<Integer> intersection (ArrayList<Integer> nums1,
                                            ArrayList<Integer> nums2) {
        ArrayList<Integer> arr = new ArrayList<>();
        // 暴力解法
        // 1.判断出哪个数组长度最短，从长度最短的数组中拿取元素，去较长数组中进行比对（也可以反着来）
        int length = Math.min(nums1.size(), nums2.size());
        int flag = 0;
        if (nums1.size() < nums2.size()) {
            // flag 为1 说明 nums1 的长度较短，从nums1中拿取元素去nums2中比对元素
            flag = 1;
        }
        for (int i = 0; i < length; i ++) {
            // 遍历长度较短的数组，虽然能节省一点时间，但不多
            int value = 0;
            if (flag == 0) {
                value = nums2.get(i);
                if (nums1.contains(value)) {
                    if (!arr.contains(value)) {
                        arr.add(value);
                    }
                }
            }
            if (flag == 1) {
                value = nums1.get(i);
                if (nums2.contains(value)) {
                    if (!arr.contains(value)) {
                        arr.add(value);
                    }
                }
            }

        }
        if (arr.size() == 0) {
            // 如果arr没有元素，说明给定的两个数组中没有公共元素
            return null;
        }
        return arr;
    }
}
